package com.yz.sharkim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yz.sharkim.entity.User;
import io.netty.channel.Channel;

import java.util.List;

/**
 * @author yangzheng
 * @version 1.0
 * @date 2019/11/5
 */
public interface IUserService  extends IService<User> {

    /**
     * 根据id获取用户
     * @param id 用户id
     * @return User
     */
    User getUserById(Integer id);

    /**
     * 获取当前通道用户
     * @param channel 连接Channel
     * @return User
     */
    User getUserByChannel(Channel channel);

    /**
     * 用户上线
     * @param channel  通道
     * @param user     用户
     * @return
     */
    void online(Channel channel, User user);

    /**
     * 用户下线
     * @param id 用户id
     * @return User
     */
    void offline(Integer id);

    /**
     * 获取用户列表
     * @return
     */
    List<User> getUserList();

    /**
     * 获取用户流水号
     * @param id 用户
     * @return 流水号
     */
    Integer getNo(Integer id);

    Integer getNo(Channel id);
}
